package com.knowledgegraph.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class G6GraphData {
    
    private List<G6Node> nodes;
    private List<G6Edge> edges;
    private List<G6Combo> combos;
    
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class G6Node {
        private String id;
        private String label;
        private String type;
        private Double x;
        private Double y;
        private Map<String, Object> style;
        private Map<String, Object> data;
        private String comboId;
    }
    
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class G6Edge {
        private String id;
        private String source;
        private String target;
        private String label;
        private String type;
        private Double weight;
        private Map<String, Object> style;
        private Map<String, Object> data;
    }
    
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class G6Combo {
        private String id;
        private String label;
        private String type;
        private Map<String, Object> style;
        private Map<String, Object> data;
    }
}